package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TPhoto;
import persistent.dao.PhotoDAO;

/**
 * 网站前端图片管理业务类接口的实现
 * @author djf
 * @since 2018/12/12
 */
public class PhotoImpl implements PhotoDAO {

	private HibBaseDAO dao=null;
	
	public PhotoImpl() {
		dao=new HibBaseDAO();
	}

	/**
	 * 添加一条图片信息
	 * @param photo 图片对象
	 * @return 成功返回true，失败返回null
	 */
	@Override
	public int addPhoto(TPhoto photo) {
		return dao.insert(photo);
	}

	/**
	 * 删除一条图片信息
	 * @param photoid 图片id
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deletePhoto(int photoid) {
		return dao.delete(TPhoto.class, photoid);
	}

	/**
	 * 修改一个照片对象
	 * @param photo 图片对象
	 * @return 成功返回true，失败返回null
	 */
	@Override
	public boolean updatePhoto(TPhoto photo) {
		TPhoto photo2=(TPhoto)dao.findById(TPhoto.class, photo.getPhotoid());
		photo2.setPath(photo.getPath());
		photo2.setStatus(photo.getStatus());
		return dao.update(photo2);
	}

	/**
	 * 根据图片id得到一个图片对象
	 * @param photoid 图片id
	 * @return 成功返回TPhoto图片对象，失败返回null
	 */
	@Override
	public TPhoto getAPhoto(int photoid) {
		return (TPhoto)dao.findById(TPhoto.class, photoid);
	}


	/**
	 * 得到所有图片列表
	 * @param strwhere 查询条件
	 * @return 成功返回TPhoto列表，失败返回null
	 */
	@Override
	public List<TPhoto> getPhotoList() {
		String hql="from TPhoto";
		return dao.select(hql);
	}
	
	/**
	 * 根据查询条件得到图片列表
	 * @param strwhere 查询条件
	 * @return 成功返回TPhoto列表，失败返回null
	 */
	@Override
	public List<TPhoto> getPhotoList(String strwhere) {
		String hql="from TPhoto "+strwhere;
		return dao.select(hql);
	}

	/**
	 * 根据查询条件得到图片列表(带分页)
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回TPhoto列表，失败返回null
	 */
	@Override
	public List<TPhoto> getPhotoList(String strwhere, int currentPage,
			int pageSize) {
		String hql="from TPhoto "+strwhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

}
